package 简单.模拟;

/**
 * 给你一个 m x n 的矩阵，最开始的时候，每个单元格中的值都是 0。
 * 另有一个二维索引数组 indices，indices[i] = [ri, ci] 指向矩阵中的某个位置，
 * 其中 ri 和 ci 分别表示指定的行和列（从 0 开始编号）。
 * 对 indices[i] 所指向的每个位置，应同时执行下述增量操作：
 * ri 行上的所有单元格，加 1 。
 * ci 列上的所有单元格，加 1 。
 * 给你 m、n 和 indices 。请你在执行完所有 indices 指定的增量操作后，返回矩阵中 奇数值单元格 的数目。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/cells-with-odd-values-in-a-matrix
 */
public class 奇数值单元格的数目_1252 {

    public static void main(String[] args) {

        int[][] indices = {{1, 1}, {0, 0}};
        System.out.println(oddCells(2, 2, indices));

    }

    public static int oddCells(int m, int n, int[][] indices) {
        int[] rowAdd = new int[m];
        int[] columnAdd = new int[n];
        for (int[] index : indices) {
            rowAdd[index[0]]++;
            columnAdd[index[1]]++;
        }
        int count = 0;
        for (int row = 0; row < m; row++) {
            for (int column = 0; column < n; column++) {
                if ((rowAdd[row] + columnAdd[column]) % 2 != 0) {
                    count++;
                }
            }
        }
        return count;
    }

}
